#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n, k;
    cin >> n >> k;
    k=min(k,n/2);
    vector<int> arr(n);
    for (int i = 0; i <n; i++)
        cin >> arr[i];

    vector<vector<int>> f(n,vector<int>(k+1));
    for(int i=0;i<=k;i++)
    {
        f[0][i]=-0x3f3f3f;
    }
    auto g=f;
    f[0][0]=-arr[0];
    g[0][0]=0;
    for (int i = 1; i < n; i++) {
        for(int j=0;j<=k;j++)
        {
            f[i][j]=max(f[i-1][j],g[i-1][j]-arr[i]);
            g[i][j]=g[i-1][j];
            if(j>=1)
            {
                g[i][j]=max(g[i][j],f[i-1][j-1]+arr[i]);
            }
        }
    }

    int ret=0;
    for(int i=1;i<=k;i++)
    {
        ret=max(ret,g[n-1][i]);
    }
    cout<<ret<<endl;
    return  0;
}
